#include <iostream>
#include <string>
/*
**函数重载**：允许定义多个同名的函数，但参数列表必须不同。
    返回值不作为重载的条件
**作用**：函数名可以相同，提高代码的复用性，简化调用。


形参列表不同的规则。    不能出现二义性
    - **类型不同**  
    - **个数不同** 
    - **顺序不同**

*/

/************************* 类型区分重载 *************************/

using namespace std;

void Swap_Func(int  val_1 , int val_2)
{
    int temp = val_2;
    val_2 = val_1;
    val_1 = temp;
}


void Swap_Func(double  val_1 ,double  val_2)
{
    double temp = val_2;
    val_2 = val_1;
    val_1 = temp;
}


int main(int argc, char const *argv[])
{
    int val_int_1 = 50;
    int val_int_2 = 70;

    double val_double_1 = 50.123;
    double val_double_2 = 70.123;


    Swap_Func(val_int_1 , val_int_2);
    Swap_Func(val_double_1 , val_double_2);


    cout << val_int_1 << " " << val_int_2 << endl;
    cout << val_double_1 << " " << val_double_2 << endl;

    return 0;
}
